A finite-state machine (FSM) (also known as a finite-state automaton (FSA), finite automaton, or state machine) is a machine that can assume a finite set of states (one state at a time), and changes from one of these states to another in response to received inputs. The FSM may be defined, for example, by a list of its possible states, its initial state, and conditions for transitioning from one state to another. Some FSMs may make use of content addressable memory (CAM), which may include, in some examples, ternary content addressable memory (TCAM).
CAM is a type of memory that can perform a search operation in which a data string may be input as search content and the resulting output is an address or other content-associated data of a location in the memory that stores matching data (if there is any). This is in contrast to a read operation in which an address is input and the resulting output is the data stored in the memory location corresponding to the searched address. Certain CAMs may be able to perform both the aforementioned search operation and the aforementioned read operation, while non-CAM memories may be able to perform the read operation but not the search operation.
TCAM is a type of CAM in which the bit cells can store a wildcard data value in addition to two binary data values. When a bit cell that stores the wildcard value is searched, the result is a match regardless of what search criterion is used to search the bit cell. Certain TCAMs may also allow a search to be conducted on the basis of a wildcard search criterion. When a bit cell is searched based on the wildcard search criterion, the result is a match regardless of what value is stored in the bit cell.